﻿using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using Infraestrutura.Repositorios.SQL;
using System.Configuration;

namespace Model.Tipologias
{
    public class TipologiaService : RepositorioSQL<Tipologia>, ITipologiaService
    {
        public TipologiaService()
        {
            Tabela = "Tipologias";
            LigacaoBD = ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString;
        }


        public Tipologia ObterPorChave(String tipo, String codigo)
        {
            return ObterPorChave(String.Format("@Tipo='{0}',@Codigo='{1}'", tipo, codigo));
        }

        public IList<Tipologia> ObterPorTipo(String tipo)
        {
            return ObterLista(String.Format("exec proc_TipologiasLoadByTipo '{0}'", tipo));
        }
        
        protected override String ObterParametrosInserir(Tipologia item)
        {
            return String.Format("@Tipo='{0}', @Codigo='{1}', @Descricao='{2}', @DescricaoCurta='{3}', @Simbolo='{4}'",
                                   item.Tipo,item.Codigo, item.Descricao, item.DescricaoCurta, item.Simbolo);
        }
        
        protected override String ObterParametrosApagar(Tipologia item)
        {
            return String.Format("@Tipo='{0}', @Codigo='{1}'", 
                                  item.Tipo, 
                                  item.Codigo);
        }


        protected override Tipologia CarregarDados(SqlDataReader dataReader, Tipologia item)
        {
            item.Tipo = dataReader["Tipo"].ToString();
            item.Codigo = dataReader["Codigo"].ToString();
            item.Descricao = dataReader["Descricao"].ToString();
            item.DescricaoCurta = dataReader["DescricaoCurta"].ToString();
            item.Simbolo = dataReader["Simbolo"].ToString();

            return item;
        }
    }
}
